import { StringUtils } from "../../base/utils/StringUtils";
import { argType } from "./IPublisher";

/**
 * 登录能力
 */
export class ILoginAble{
    protected _type:string;
    /**
     * 初始化
     * @param type 功能类型，如：wx;tt等
     */
    init(type: string): ILoginAble {
        if(!this._type){
            this._type = type;
        }
        return this;
    }
    /**
     * 是否支持
     */
    isSupport():boolean{
        return true;
    }
    /**
     * 登录
     */
    login(caller?:any, onSuccess?:()=>void, onFail?:()=>void):void{
        console.log("登录", this._type);
        onSuccess && onSuccess.apply(caller);
    }
    /**
     * 注销
     */
    logout():void{
        console.log("注销登录", this._type);
    }
    /**
     * 登录成功的sessionID
     */
    get sessionID():argType{
        return "";
    }
    /**
     * 登录成功的openID
     */
    get openID():argType{
        return app.storage.userId || `temp_${StringUtils.random(16)}`;
    }

    /**
     * 获取用户信息
     */
    get userInfo():any{
        return {};
    }
}
